Reproduzierbare Forschung
mit R und Quarto – Fortgeschrittenes

Workshop für die GSE Wuppertal

Björn S. Siepe

June 27, 2025

Reproducibility ist ein Spektrum

Molo, Fraga González, and Pawel (2025)
  • Ziel heute: Verstehen, was möglich ist auf der rechten Seite

  • ~~Ziel heute: Tiefes technisches Verständnis für fortgeschrittene Arbeitsabläufe ~~

Dynamische Reports lösen copy-paste Probleme, aber…

  • Wie behält man den Überblick über verschiedene Dateiversionen?
    • Paper-final.qmdPaper-final2.qmdPaper-final2b.qmd → 😱
    • Lösung: Git
  • Woher weiß man, welche Dateien in welcher Reihenfolge ausgeführt werden sollen?
    • functions.qmd, analysis.qmd, plots.qmd, paper.qmd, 🤔
    • Lösung: Make
  • Wie stellt man sicher, dass der Code noch läuft, wenn sich Softwareversionen ändern?
    • Heute”: R Version 4.5, ggplot2 3.5.2 → Nächstes Jahr: R Version ❓, ggplot2 ❓
    • Lösung: Docker
  • Sehr schönes Paper über einen solchen Workflow: Peikert and Brandmaier (2021)

Nützliche Tools 1: renv

  • R package für Reproduzierbarkeit von R-Projekten

::: {.column} width=“50%”

```{r}
renv::init())  # renv initialisieren
renv::snapshot()  # Abhängigkeiten erfassen
renv::restore()  # Abhängigkeiten wiederherstellen
renv::dependencies()  # Abhängigkeiten auflisten
```

::: {.column} width=“50%” Ushey and Wickham (2025) ::: :::

Nützliche Tools 2: targets

Pipeline für Reproduzierbarkeit von R-Projekten

Landau (2021) & wlandau.github.io

Versionskontrolle mit Git

  • De-facto-Standard Versionskontrollsystem
  • Kann in der Zeit zurückgehen zu früheren Versionen
  • Kann Änderungen zwischen Versionen verfolgen
  • Kann verzweigen und zusammenführen
  • Nützlich für Kollaboration und Dateitransfer
  • Command-Line-Schnittstelle (Lernkurve)
  • Grafische Schnittstelle in vielen Editoren/IDEs (z. B. RStudio, VS Code)
  • Git (Software) ≠ GitHub/GitLab (Git-Repository-Hosting-Dienste)
  • Snapshots ermöglichen die dauerhafte Archivierung (mit DOI) auf Daten-Repositories (z. B. Zenodo)

Versionskontrolle mit Git - Wo starten?

  • Git installieren
  • GitHub Account erstellen
  • Git in RStudio aktivieren
  • RStudio-Projekt erstellen
  • RStudio-Projekt mit Git initialisieren
  • RStudio-Projekt mit GitHub verbinden

Gute Ressource: - Happy Git with R: https://happygitwithr.com/

Automatisierung mit Make

  • Tool für komputationale Rezepte
  • Automatisierung von mehreren Schritten in einem

Arrabbiata sauce, or sugo all’arrabbiata in Italian, is a spicy sauce for pasta made from garlic, tomatoes, and dried red chili peppers cooked in olive oil.

https://en.wikipedia.org/wiki/Arrabbiata_sauce

Makefile ::: fragment

arrabiata.pdf: arrabiata.qmd sauce.csv pasta.R
  quarto render arrabiata.qmd

sauce.csv: cook.R tomatoes.zip aromatics.yaml
  R -e "source(cook.R)"

aromatics.yaml: sizzle.py garlic.txt chili.json
  python sizzle.py garlic.txt
  python sizzle.py chili.json

Terminal

make arrabiata.pdf # execute recipe

:::

Molo, Fraga González, and Pawel (2025)

Containerisierung mit Docker

  • Software Container beinhalten das komputationale Umfeld für die Ausführung von Code

  • Komponenten eines Containers:

    • Operating System (OS)
    • R und R-Pakete (oder andere Programmiersprachen)
    • Numerische Bibliotheken (z.B., LAPACK, BLAS)
    • Andere Software (z.B., LaTeX, Java)
  • Docker ist ein beliebtes Containerisierungstool

  • Rocker ist ein Docker Image für R (https://rocker-project.org/)

Dockerfile

# Rocker container image mit R 4.4
FROM rocker/verse:4.4

# R Packages zum damaligen Zeitpunkt installieren
RUN install2.r ggplot2 dplyr kableExtra

Alles zusammen

Nach Peikert and Brandmaier (2021) und Molo, Fraga González, and Pawel (2025)

Terminal

# alles in einem Schritt ausführen
make docker-report

report.html

Zusätzliches Thema: Code Reviews

  • Wir verwenden sehr viel Zeit zu schreiben, aber wenig Zeit, um Code zu lesen

Hillemann et al. (2025)

Abschlussdiskussion

  • Welche Tools könnten am nützlichsten sein?
  • Welche Tools sind am schwierigsten zu lernen?
  • Wo sind die größten verbleibenden Hürden?

Zusammenfassung

  • Dynamische Reports + Versionskontrolle + Automatisierung + Containerisierung

    • verbessert Reproduzierbarkeit, Wiederverwendbarkeit, Zusammenarbeit
    • verleiht der Forschung mehr Transparenz, Glaubwürdigkeit
  • Es gibt eine Lernkurve , aber …

    • die Tools werden stetig weiterentwickelt

    • investierte Lernzeit kann Zeit sparen

    • Fähigkeiten sind innerhalb/außerhalb von Academia nützlich

Quarto für andere Dinge

Kontakt

Vielen Dank für die Aufmerksamkeit! 🎉


📧 bjoern.siepe@uni-marburg.de
🌐 bsiepe.github.io
🌤️ bsky.app/profile/bsiepe.bsky.social

Session Info

R version 4.5.0 (2025-04-11 ucrt)

Platform: x86_64-w64-mingw32/x64

locale: LC_COLLATE=German_Germany.utf8, LC_CTYPE=German_Germany.utf8, LC_MONETARY=German_Germany.utf8, LC_NUMERIC=C and LC_TIME=German_Germany.utf8

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

loaded via a namespace (and not attached): compiler(v.4.5.0), fastmap(v.1.2.0), cli(v.3.6.5), tools(v.4.5.0), htmltools(v.0.5.8.1), yaml(v.2.3.10), Rcpp(v.1.0.14), pander(v.0.6.6), rmarkdown(v.2.29), knitr(v.1.50), jsonlite(v.2.0.0), xfun(v.0.52), digest(v.0.6.37), rlang(v.1.1.6) and evaluate(v.1.0.3)

Literatur

Hillemann, Friederike [freddy], Joseph B. Burant, Antica Culina, and Stefan J. G. Vriend. 2025. “Code Review in Practice: A Checklist for Computational Reproducibility and Collaborative Research in Ecology and Evolution.” April 25, 2025. https://ecoevorxiv.org/repository/view/9055/.
Landau, William Michael. 2021. “The Targets r Package: A Dynamic Make-Like Function-Oriented Pipeline Toolkit for Reproducibility and High-Performance Computing.” Journal of Open Source Software 6 (57): 2959. https://doi.org/10.21105/joss.02959.
Molo, Fabio, Gorka Fraga González, and Samuel Pawel. 2025. “Workshop ‘Reproducible and Dynamic Reporting with r and Quarto – Getting Started’ at UZH.” https://doi.org/doi.org/10.5281/zenodo.14169002.
Peikert, Aaron, and Andreas M. Brandmaier. 2021. “A Reproducible Data Analysis Workflow with r Markdown, Git, Make, and Docker.” Quantitative and Computational Methods in Behavioral Sciences 1. https://doi.org/10.5964/qcmb.3763.
The Turing Way Community, and Scriberia. 2024. “Illustrations from the Turing Way: Shared Under CC-BY 4.0 for Reuse.” Zenodo. https://doi.org/10.5281/ZENODO.3332807.
Ushey, Kevin, and Hadley Wickham. 2025. Renv: Project Environments. https://doi.org/10.32614/CRAN.package.renv.